Experience Report: Rapid Reengineering of Legacy Software using Java Reflection

نویسندگان

  • Blair Durkee
  • Murali Sitaraman
  • Daniel T. Welch
چکیده

The objective of this paper is to describe our experience in rapidly reengineering legacy software through the application of Java reflection in a research compiler. This process would be of value to language evolution and development e↵orts, in general, and reengineering e↵orts, in particular. It was performed in the course of a software project that has slowly evolved from a simple language translator to a sophisticated verifying compiler with multiple back-ends over a 20-year period, even as the language itself has continued to change with research progress. To minimize the temporal costs of refactoring legacy code in the face of continuous evolution of the language and the need for new additional components (e.g., translators for multiple languages) for various uses in our project, we used a reflection-based, generic walker based on a proper implementation of the visitor pattern. This paper describes the dynamic walker and our experience in employing the walker for code generation.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Reengineering Process for Mobile Component Patterns

Many reengineering approaches have focused on extracting an abstract representation through syntax analysis of legacy source codes. So, recovery of rationale behind the design decision, such as domain specific semantics and roles, has been ignored. In this paper, we suggest the architecture based reengineering approach using design patterns. A design pattern, as core element of software archite...

متن کامل

Research on Support Tools for Object-Oriented Software Reengineering

Reengineering presents a practical and feasible approach to transform legacy systems into evolvable systems. Component-based systems are evolvable and can be easily reengineered. Object-oriented software reengineering should base on component library and focus on seamlessly cooperating with component library and assembly tool to construct the whole reengineering system. So the reengineering dis...

متن کامل

An Iterative Reengineering Process Applying Test-Driven Development and Reverse Engineering Patterns

Nowadays, software technology is evolving quickly and therefore software systems which have been built upon some technologies are deprecated even before being released and used. Thus, software systems are in constant evolution in order to adapt themselves to the current technologies as well as users’ needs. An approach to revitalize software systems that have already been released is reengineer...

متن کامل

An Investigation: Reengineering Sequential Procedure-Driven Software into Object-Oriented Event-Driven Software through UML Diagrams

Reengineering a COBOL legacy system is a difficult multi-step process, particularly when the COBOL legacy system is a sequential procedural-driven system which is being reengineered into an object oriented, event-driven system. In this scenario, it is necessary to analyse the legacy system in order to identify possible objects with their attributes and methods within the code and to determine h...

متن کامل

Using Reengineering for Migration to or Evolution of Component Based Software Systems

Many reengineering techniques have been presented in the software engineering communities and some of them have been successful in the evolution and maintenance of complex legacy systems, but so far the target of these techniques has mostly been traditional software such as modular software. On the other hand Component Based Software engineering (CBSE) is growing in both academic research commu...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2017